package com.jianhua.backend.controller;

import com.jianhua.backend.common.R;
import com.jianhua.backend.domain.entity.Categories;
import com.jianhua.backend.domain.entity.Dishes;
import com.jianhua.backend.service.CategoriesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 * 支持多级菜品分类，如清真/非清真、热食/冷食等 前端控制器
 * </p>
 *
 * @author author
 * @since 2025-07-02
 */
@RestController
@RequestMapping("/categories")
public class CategoriesController {

    @Autowired
    private CategoriesService categoriesService;

    /**
     * 获取分类列表接口
     * 该接口用于获取所有分类的列表数据，并返回给前端展示
     *
     * @return 返回包含分类列表的响应对象R
     */
    @GetMapping("/list")
    public R listCategories(){
        List<Categories> categories = categoriesService.listCategories();
        return R.success(categories);
    }

    /**
     * 添加分类接口
     * 该接口用于添加一个新的分类
     *
     * @param categories 要添加的分类信息，通过JSON格式传递
     * @return 返回操作结果，成功时为R.success(null)
     */
    @PostMapping("/add")
    public R addCategories(@RequestBody Categories categories){
        categoriesService.addCategories(categories);
        return R.success(null);
    }

    /**
     * 更新分类信息接口
     * 该接口用于接收前端传来的分类对象，并更新分类信息
     *
     * @param categories 要更新的分类对象，通过@RequestBody注解获取
     * @return 返回操作结果，成功则返回R.success(null)
     */
    @PostMapping("/update")
    public R updateCategories(@RequestBody Categories categories){
        categoriesService.updateCategories(categories);
        return R.success(null);
    }

    /**
     * 删除分类接口
     * 根据传入的分类ID删除对应的分类
     *
     * @param id 分类ID
     * @return 操作成功的响应
     */
    @DeleteMapping("/delete/{id}")
    public R deleteCategories(@PathVariable Integer id){
        categoriesService.deleteCategories(id);
        return R.success(null);
    }

}
